1. Technical Field
The present invention relates to a collision detection system, a robotic system, a collision detection method, and a program.
2. Related Art
To determine presence or absence of collision or proximity between objects is required in many field. In the field of, for example, a robot, occurrence of collision causes an extremely significant problem. Therefore, in the past, there has been researched and developed a method of determining presence or absence of the collision or the proximity exceeding an allowable range prior to actual occurrence of the collision using calculation by a computer. As the related art of such a collision determination method, there have been known technologies disclosed in, for example, JP-A-9-204543 (Patent Document 1) and JP-T-2009-545075 (Patent Document 2).
The method of Document 1 is shown in the flowchart of FIG. 6 thereof. In the related art described in Document 1, in a device of storing a three-dimensional arrangement of an object as a two-dimensional position composed of lateral (X) and vertical (Y) coordinates, and a depth value (Z value) corresponding to the position, the primitive renders sequentially. Then, if those having the same depth value, namely those occupying three-dimensionally the same position, appear in the rendering process, those are determined as the collision.
The method of Document 2 is explained with reference to FIGS. 2A to 3C thereof. In the related art described in Document 2, the distance from the origin of a polygon to a side of the polygon in a certain direction is previously calculated, and is stored as a cube map. Then, the collision is determined based on the magnitude relation between the distance from the origin to the object to be the target of the collision detection, and the distance stored in the cube map.
However, according to the related art of Document 1, since the update of the depth value depends on the order of drawing the object, omission of the detection of the collision can occur. For example, even if the object disposed on the front side (near side) is drawn, and then the collision occurs between other objects behind (on the back side of) the object thus drawn, since the depth value has already updated to the value of the object on the front side, it results that the collision fails to be detected.
Further, in the related art of Document 2, there is a problem that it is difficult to accurately treat the collision of a non-convex polygon. In other words, since the distance from the origin to the side is stored in the single cube map, it results that in the case in which the polygon has a plurality of sides in a certain direction, namely in the case of such a non-convex polygon, it is not achievable to express the distance as a single cube map.